//package com.controller;
//
//import com.entity.EsDto;
//import com.mapper.EsMapper;
//import com.util.Response;
//import com.util.StringUtil;
//import io.swagger.annotations.ApiOperation;
//import org.elasticsearch.index.query.BoolQueryBuilder;
//import org.elasticsearch.index.query.QueryBuilders;
//import org.elasticsearch.search.sort.FieldSortBuilder;
//import org.elasticsearch.search.sort.SortBuilders;
//import org.elasticsearch.search.sort.SortOrder;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.data.domain.Page;
//import org.springframework.data.domain.PageRequest;
//import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
//import org.springframework.data.elasticsearch.core.query.SearchQuery;
//import org.springframework.web.bind.annotation.PostMapping;
//import org.springframework.web.bind.annotation.RequestBody;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RestController;
//
//import java.util.Arrays;
//import java.util.Date;
//import java.util.List;
//
///**
// * @author chenhailong
// * @ClassName: EsController
// * @Description: ES请求类
// * @date 2022/1/4 9:41
// * @Version 1.0
// */
//@RestController
//@RequestMapping("/es")
//public class EsController {
//
//    @Autowired
//    private EsMapper esMapper;
//
//    /**
//     * @Author 分页查询
//     * @Date 19:19 2021/12/20
//     * @param tTreeNodeReq tTreeNodeReq
//     * @return response response
//     **/
//    @PostMapping("/selectPage")
//    @ApiOperation(value = "分页查询")
//    public Response select(@RequestBody EsDto tTreeNodeReq) {
//        BoolQueryBuilder query = new BoolQueryBuilder();
//
//        // 分页查询，从零开始
//        PageRequest of = PageRequest.of(0, 10);
//
//        // 条件精确查询
//        query.filter(QueryBuilders.termQuery("id", "11"));
//
//        // 区间查询 查询8岁到10岁之间
//        query.filter(QueryBuilders.rangeQuery("age").format("8").to("10"));
//
//        // 模糊查询
//
//        // 集合查询
//        query.filter(QueryBuilders.termQuery("age", Arrays.asList("5", "6")));
//
//
//        // 排序规则，按时间降序
//        FieldSortBuilder sort = SortBuilders.fieldSort("time").order(SortOrder.DESC);
//
//        SearchQuery searchQuery =
//                new NativeSearchQueryBuilder().withPageable(of).withQuery(query).withSort(sort).build();
//        Page<EsDto> search = esMapper.search(searchQuery);
//
//        // 返回数据集合
//        List<EsDto> content = search.getContent();
//
//        // 总条数
//        long totalElements = search.getTotalElements();
//
//        int totalPages = search.getTotalPages();
//        return Response.createSuccess("成功", search);
//    }
//
//    /**
//     * @Author chl
//     * @Description 新增功能
//     * @Date 19:19 2021/12/20
//     * @param tTreeNodeReq tTreeNodeReq
//     * @return response response
//     **/
//    @PostMapping("/add")
//    @ApiOperation(value = "新增功能")
//    public Response add(@RequestBody EsDto tTreeNodeReq) {
//        EsDto esDto = new EsDto();
//        esDto.setId(StringUtil.buildUUID());
//        esDto.setAddress("我的地址");
//        esDto.setAge("18");
//        esDto.setTime(new Date());
//        esDto.setName("我的xiaoxiao");
//        EsDto save = esMapper.save(esDto);
//        return Response.createSuccess("成功", save);
//    }
//
//    /**
//     * @Author chl
//     * @Description 删除
//     * @Date 19:19 2021/12/20
//     * @param tTreeNodeReq tTreeNodeReq
//     * @return response response
//     **/
//    @PostMapping("/delate")
//    @ApiOperation(value = "删除")
//    public Response delate(@RequestBody EsDto tTreeNodeReq) {
//
//        esMapper.deleteById("1");
//        return Response.createSuccess("成功");
//    }
//}
